package com.yz.design.factoryDesign.simpleFactory;

/**
 * 简单工厂模式 静态工厂模式
 * 严格的说，简单工厂模式并不是23种常用的设计模式之一，它只算工厂模式的一个特殊实现。简单工厂模式在实际中的应用相对于其他2个工厂模式用的还是相对少得多，因为它只适应很多简单的情况。
 * 最重要的是它违背了我们在概述中说的 开放-封闭原则 （虽然可以通过反射的机制来避免，后面我们会介绍到） 。
 * 因为每次你要新添加一个功能，都需要在生switch-case 语句（或者if-else 语句）中去修改代码，添加分支条件。
 * <p>
 * 2.2 适用场景
 * （1）需要创建的对象较少。
 * <p>
 * （2）客户端不关心对象的创建过程。
 */
public class Main {
    public static void main(String[] args) {
        Pay pay = PayFactory.getPayObj("ali");
        // 可调用pay的方法完成支付功能
        pay.commitPayData("");
        pay.pay("");
    }
}